package com.dkm.orproject.dkmoa.service;

import com.dkm.orproject.dkmoa.domain.OaDepartment;
import com.dkm.orproject.dkmoa.domain.vo.OaDepartmentVo;

import java.util.List;

/**
 *  @ClassName : OaDepartmentSevice  //类名
 *  @Description : 部门  //描述
 *  @Author : 石智诚  //作者
 *  @Date: 2020-08-05 11:25  //时间
 */
public interface OaDepartmentService {

    /**
     * 删除部门
     * @param pkDepartmentId 部门Id
     * @return
     */
    int delete(Long pkDepartmentId);
    /**
     * 部门查询(下拉框)
     * @return id
     */
    List<OaDepartment> findByAll();
    /**
     * 部门增加
     * @param record 部门信息
     * @return 是否增加成功
     */
    int insert(OaDepartment record);

    /**
     * 根据id查询信息
     * @param pkDepartmentId 部门id
     * @return 部门的信息
     */
    OaDepartment selectByDepartmentId(Long pkDepartmentId);

    /**
     * 更新部门的信息
     * @param record 部门的信息
     * @return 是否更新成功+
     */
    int update(OaDepartment record);
    /**
     * 逻辑删除
     * @param pkDepartmentId 部门Id
     * @return 是否更新成功
     */
    int updateById(Long pkDepartmentId,String personnelName);

    /**
     * 批量物理删除
     * @param list 部门的集合
     * @return 删除的行数
     */
    int deleteAll(List<Long> list);

    /**
     * 批量逻辑删除
     * @param list 部门的集合
     * @return 删除的行数
     */
    int updateAll(List<Long> list,String personnelName);

    /**
     * 查询所有人员的信息
     * @param department 部门 用于条件查询
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return 部门信息的集合
     */
    List<OaDepartment> findAll(OaDepartment department, Integer page,Integer limit,String startTime,String endTime);

    /**
     * 总行数
     * @param department 部门模型 用于条件查询
     * @param startTime 开始时间
     * @param endTime 结束
     * @return 总行数
     */
    Long rowCount( OaDepartment department,String startTime, String endTime);

    /**
     * 查询关键字
     * @param keyword 关键字
     * @return 回调函数
     */
    int findByKeyWord(String keyword);

    /**
     * 根据id查看部门的详情
     * @param pkDepartmentId 部门Id
     * @return 部门实体类
     */
    OaDepartmentVo selectById(Long pkDepartmentId);

}
